package com.cyt.work.divideclass.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.service.BaseService;
import com.cyt.work.divideclass.model.po.DivideclassClass;
import com.cyt.work.divideclass.model.vo.DivideclassClassVo;
import com.cyt.work.enrollment.model.vo.EnrollmentRuleVo;
import com.cyt.work.wb.model.vo.WxWbBulidVo;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * 智能分班分班设置-智能分班分班设置Service层接口类
 *
 * @author caideyong
 * @date 2019-12-20 14:11:03
 */
public interface DivideclassClassService extends BaseService<DivideclassClass> {

    /**
     * 查询对象集合
     *
     * @param divideclassClassVo 对象
     * @return List 对象集合
     * @author caideyong
     * @date 2019-12-20 14:11:03
     */
    List<DivideclassClass> listExample(DivideclassClassVo divideclassClassVo);

    /**
     * 分页查询
     *
     * @param divideclassClassVo 接受参数对象
     * @param pageNum          分页数
     * @param pageSize         每页显示条数
     * @return ReturnResult
     * @author caideyong
     * @date 2019-12-20 14:11:03
     */
    ReturnResult page(DivideclassClassVo divideclassClassVo, int pageNum, int pageSize);

    /**
     * 添加或更新
     *
     * @param divideclassClassVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author caideyong
     * @date 2019-12-20 14:11:03
     */
    ReturnResult addOrUpdate(DivideclassClassVo divideclassClassVo, SysUser sysUser);

    /**
     * 根据条件逻辑删除
     *
     * @param divideclassClassVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author caideyong
     * @date 2019-12-20 14:11:03
     */
    ReturnResult remove(DivideclassClassVo divideclassClassVo, SysUser sysUser);
    ReturnResult changeClass(DivideclassClassVo divideclassClassVo, SysUser sysUser);
    /**
     * 根据条件物理删除
     *
     * @param divideclassClassVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author caideyong
     * @date 2019-12-20 14:11:03
     */
    ReturnResult delete(DivideclassClassVo divideclassClassVo, SysUser sysUser);

    void export(HttpServletResponse response, DivideclassClassVo divideclassClassVo);

    void insertList(List<DivideclassClass> divideclassClassList);


    /**
     * 获取菜单树
     *
     * @param divideclassClassVo 参数接受对象
     * @return ReturnResult
     * @author caideyong
     * @date 2019-11-25 8:51:23
     */
    ReturnResult dTreeListClass(DivideclassClassVo divideclassClassVo);
}